﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.ComponentModel;
using System.Security.Permissions;

namespace Husb.Framework
{
    [Serializable, HostProtection(SecurityAction.LinkDemand, SharedState = true)]
    public class BindingListView<T> : BindingList<T>, IBindingListView, IRaiseItemChangedEvents
    {
        public BindingListView()
        {

        }
        public BindingListView(IList<T> list)
            : base(list)
        {
        }


        #region IRaiseItemChangedEvents 成员

        bool IRaiseItemChangedEvents.RaisesItemChangedEvents
        {
            get { return true; } //throw new NotImplementedException();
        }

        #endregion

        #region IBindingListView 成员

        void IBindingListView.ApplySort(ListSortDescriptionCollection sorts)
        {
            throw new NotImplementedException();
        }

        string IBindingListView.Filter
        {
            get
            {
                throw new NotImplementedException();
            }
            set
            {
                throw new NotImplementedException();
            }
        }

        void IBindingListView.RemoveFilter()
        {
            throw new NotImplementedException();
        }

        ListSortDescriptionCollection IBindingListView.SortDescriptions
        {
            get { throw new NotImplementedException(); }
        }

        bool IBindingListView.SupportsAdvancedSorting
        {
            get { throw new NotImplementedException(); }
        }

        bool IBindingListView.SupportsFiltering
        {
            get { throw new NotImplementedException(); }
        }

        #endregion

        #region

        //#region IBindingList 成员

        //void IBindingList.AddIndex(PropertyDescriptor property)
        //{
        //    throw new NotImplementedException();
        //}

        //object IBindingList.AddNew()
        //{
        //    throw new NotImplementedException();
        //}

        //bool IBindingList.AllowEdit
        //{
        //    get { throw new NotImplementedException(); }
        //}

        //bool IBindingList.AllowNew
        //{
        //    get { throw new NotImplementedException(); }
        //}

        //bool IBindingList.AllowRemove
        //{
        //    get { throw new NotImplementedException(); }
        //}

        //void IBindingList.ApplySort(PropertyDescriptor property, ListSortDirection direction)
        //{
        //    throw new NotImplementedException();
        //}

        //int IBindingList.Find(PropertyDescriptor property, object key)
        //{
        //    throw new NotImplementedException();
        //}

        //bool IBindingList.IsSorted
        //{
        //    get { throw new NotImplementedException(); }
        //}

        //event ListChangedEventHandler IBindingList.ListChanged
        //{
        //    add { throw new NotImplementedException(); }
        //    remove { throw new NotImplementedException(); }
        //}

        //void IBindingList.RemoveIndex(PropertyDescriptor property)
        //{
        //    throw new NotImplementedException();
        //}

        //void IBindingList.RemoveSort()
        //{
        //    throw new NotImplementedException();
        //}

        //ListSortDirection IBindingList.SortDirection
        //{
        //    get { throw new NotImplementedException(); }
        //}

        //PropertyDescriptor IBindingList.SortProperty
        //{
        //    get { throw new NotImplementedException(); }
        //}

        //bool IBindingList.SupportsChangeNotification
        //{
        //    get { throw new NotImplementedException(); }
        //}

        //bool IBindingList.SupportsSearching
        //{
        //    get { throw new NotImplementedException(); }
        //}

        //bool IBindingList.SupportsSorting
        //{
        //    get { throw new NotImplementedException(); }
        //}

        //#endregion

        //#region IList 成员

        //int System.Collections.IList.Add(object value)
        //{
        //    throw new NotImplementedException();
        //}

        //void System.Collections.IList.Clear()
        //{
        //    throw new NotImplementedException();
        //}

        //bool System.Collections.IList.Contains(object value)
        //{
        //    throw new NotImplementedException();
        //}

        //int System.Collections.IList.IndexOf(object value)
        //{
        //    throw new NotImplementedException();
        //}

        //void System.Collections.IList.Insert(int index, object value)
        //{
        //    throw new NotImplementedException();
        //}

        //bool System.Collections.IList.IsFixedSize
        //{
        //    get { throw new NotImplementedException(); }
        //}

        //bool System.Collections.IList.IsReadOnly
        //{
        //    get { throw new NotImplementedException(); }
        //}

        //void System.Collections.IList.Remove(object value)
        //{
        //    throw new NotImplementedException();
        //}

        //void System.Collections.IList.RemoveAt(int index)
        //{
        //    throw new NotImplementedException();
        //}

        //object System.Collections.IList.this[int index]
        //{
        //    get
        //    {
        //        throw new NotImplementedException();
        //    }
        //    set
        //    {
        //        throw new NotImplementedException();
        //    }
        //}

        //#endregion

        //#region ICollection 成员

        //void System.Collections.ICollection.CopyTo(Array array, int index)
        //{
        //    throw new NotImplementedException();
        //}

        //int System.Collections.ICollection.Count
        //{
        //    get { throw new NotImplementedException(); }
        //}

        //bool System.Collections.ICollection.IsSynchronized
        //{
        //    get { throw new NotImplementedException(); }
        //}

        //object System.Collections.ICollection.SyncRoot
        //{
        //    get { throw new NotImplementedException(); }
        //}

        //#endregion

        //#region IEnumerable 成员

        //System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()
        //{
        //    throw new NotImplementedException();
        //}

        //#endregion

        #endregion

    }
}
